{"id":6171,"date":"2026-10-21T16:26:24","date_gmt":"2026-10-21T14:26:24","guid":{"rendered":"https:\/\/www.yoclas.com\/?post_type=project&#038;p=6171"},"modified":"2026-10-21T16:53:01","modified_gmt":"2026-10-21T14:53:01","slug":"ac-milan-rossoneri","status":"publish","type":"project","link":"https:\/\/www.yoclas.com\/it\/projects\/ac-milan\/ac-milan-rossoneri\/","title":{"rendered":"AC MILAN &#8211; ROSSONERI"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_block_section\">\n<div class=\"et_pb_row_0 et_pb_row et_block_row\">\n<div class=\"et_pb_column_0 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_code_0 et_pb_code et_pb_module yoclas-breadcrumb\"><div class=\"et_pb_code_inner\"><div class=\"yoclas-breadcrumb\"><a href=\"https:\/\/www.yoclas.com\/it\">HOME<\/a> &gt; <a href=\"https:\/\/www.yoclas.com\/it\/projects\/\">PROJECTS<\/a> &gt; <a href=\"https:\/\/www.yoclas.com\/it\/projects\/ac-milan\/\">A.C. MILAN<\/a> &gt; <span>AC MILAN \u2013 ROSSONERI<\/span><\/div><\/div><\/div>\n\n<div class=\"et_pb_heading_0 et_pb_heading et_pb_module et_block_module preset--module--divi-heading--default\"><div class=\"et_pb_heading_container\"><h1 class=\"et_pb_module_header\">AC MILAN &#8211; ROSSONERI<\/h1><\/div><\/div>\n\n<div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module preset--module--divi-text--default\"><div class=\"et_pb_text_inner\"><p><a href=\"https:\/\/www.yoclas.com\/it\/project_category\/ac-milan\/\">AC MILAN<\/a><a href=\"https:\/\/www.yoclas.com\/it\/project_category\/video-direction\/\">Video Direction<\/a><a href=\"https:\/\/www.yoclas.com\/it\/project_category\/emis-killa\/\">EMIS KILLA<\/a><\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_1 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_1 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_1 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_video_0 et_pb_video et_pb_module et_block_module\"><div class=\"et_pb_video_box\"><iframe loading=\"lazy\" title=\"Emis Killa &amp; Saturnino - #Rossoneri | AC Milan Official\" width=\"1080\" height=\"608\" src=\"https:\/\/www.youtube.com\/embed\/aIXvs0eUpds?feature=oembed\"  allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div><div class=\"et_pb_video_overlay\" style=\"background-image:url(\/\/i.ytimg.com\/vi\/aIXvs0eUpds\/maxresdefault.jpg)\"><div class=\"et_pb_video_overlay_hover\"><a class=\"et_pb_video_play\" href=\"#\"><\/a><\/div><\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_2 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_2 et_pb_column et_block_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_1 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module preset--module--divi-text--default\"><div class=\"et_pb_text_inner\" data-et-mv-hidden-phone=\"true\"><p><span style=\"font-size: x-large;\"><strong><span style=\"font-family: Roboto Condensed;\">Client Need \/ brief<br \/><\/span><\/strong><\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">To celebrate the club's 116th anniversary, we handled the production and direction of the music video for the new official anthem:\u00a0<i>'Rossoneri'<\/i>, by Emis Killa and Saturnino.<\/span><\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_column_3 et_pb_column et_block_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_2 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module preset--module--divi-text--default\"><div class=\"et_pb_text_inner\"><p><span style=\"font-size: x-large;\"><strong><span style=\"font-family: Roboto Condensed;\">Concept idea<br \/><\/span><\/strong><\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">An anthem, a manifesto:\u00a0<i>'1899, that's the date I keep in mind. A.C. Milan equals victory. Milanisti at heart, eleven on the pitch and millions out there'<\/i>.<\/span><\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_column_4 et_pb_column et_block_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_3 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module preset--module--divi-text--default\"><div class=\"et_pb_text_inner\"><p><span style=\"font-size: x-large;\"><strong><span style=\"font-family: Roboto Condensed;\">Activities<\/span><\/strong><\/span><span style=\"font-size: x-large;\"><strong><span style=\"font-family: Roboto Condensed;\"><\/span><\/strong><\/span><\/p>\n<ul>\n<li>Video Direction<\/li>\n<li>Video production<\/li>\n<li>Art and Creative direction<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_column_5 et_pb_column et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_4 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module preset--module--divi-text--default\"><div class=\"et_pb_text_inner\" data-et-mv-hidden-phone=\"true\"><p><span style=\"font-size: x-large;\"><strong><span style=\"font-family: Roboto Condensed;\">Credits<br \/><\/span><\/strong><\/span><\/p>\n<p>A.C. MILAN management<br \/>Francesca Scarpa<br \/>Vittorio Ferro<\/p>\n<p>Creative direction:<br \/>Fabio Berton<\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_2 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_3 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_6 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_1 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><style>\n    #vimeo-overlay {\n        position: absolute;\n        inset: 0;\n        z-index: 10;\n        opacity: 0;\n        transition: opacity 0.25s ease;\n        pointer-events: auto;\n    }\n    #vimeo-overlay.is-visible {\n        opacity: 1;\n    }\n\n    #vimeo-overlay .vctrl {\n        position: absolute;\n        background: transparent;\n        border: 0;\n        color: #fff;\n        cursor: pointer;\n        padding: 0;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        -webkit-tap-highlight-color: transparent;\n        pointer-events: none;\n    }\n    #vimeo-overlay.is-visible .vctrl {\n        pointer-events: auto;\n    }\n    #vimeo-overlay .vctrl svg {\n        width: 100%;\n        height: 100%;\n        filter: none;\n    }\n    #vimeo-overlay .vctrl-play svg {\n        fill: #fff;\n    }\n    #vimeo-overlay .vctrl-mute svg,\n    #vimeo-overlay .vctrl-fs svg {\n        fill: rgba(180,180,180,0.85);\n    }\n    #vimeo-overlay .vctrl-play {\n        top: 50%;\n        left: 50%;\n        transform: translate(-50%, -50%);\n        width: 72px;\n        height: 72px;\n    }\n    #vimeo-overlay .vctrl-mute {\n        bottom: 20px;\n        left: 20px;\n        width: 32px;\n        height: 32px;\n    }\n    #vimeo-overlay .vctrl-fs {\n        bottom: 20px;\n        right: 20px;\n        width: 32px;\n        height: 32px;\n    }\n\n    #vimeo-progress {\n        position: absolute;\n        left: 64px;\n        right: 64px;\n        bottom: 34px;\n        height: 4px;\n        background: rgba(180,180,180,0.4);\n        border-radius: 2px;\n        cursor: pointer;\n        overflow: hidden;\n        -webkit-tap-highlight-color: transparent;\n        pointer-events: none;\n    }\n    #vimeo-overlay.is-visible #vimeo-progress {\n        pointer-events: auto;\n    }\n    #vimeo-progress-fill {\n        position: absolute;\n        top: 0;\n        left: 0;\n        height: 100%;\n        width: 0%;\n        background: #444;\n        border-radius: 2px;\n        pointer-events: none;\n    }\n<\/style>\n\n<div id=\"vimeo-wrap\" style=\"position:relative; width:100%; aspect-ratio:16\/9; margin:0; padding:0; line-height:0; overflow:hidden;\">\n    <iframe id=\"vimeo-switch\"\n            src=\"https:\/\/player.vimeo.com\/video\/1238034997?autoplay=0&muted=1&controls=0&title=0&byline=0&portrait=0\"\n            style=\"position:absolute; inset:0; width:100%; height:100%; border:0;\"\n            allow=\"autoplay; fullscreen; picture-in-picture\"\n            allowfullscreen>\n    <\/iframe>\n    <div id=\"vimeo-overlay\">\n        <button type=\"button\" class=\"vctrl vctrl-play\" data-action=\"playpause\">\n            <svg viewBox=\"0 0 24 24\"><path d=\"M8 5v14l11-7z\"\/><\/svg>\n        <\/button>\n        <button type=\"button\" class=\"vctrl vctrl-mute\" data-action=\"mute\">\n            <svg viewBox=\"0 0 24 24\"><path d=\"M3 9v6h4l5 5V4L7 9H3z\"\/><\/svg>\n        <\/button>\n        <button type=\"button\" class=\"vctrl vctrl-fs\" data-action=\"fullscreen\">\n            <svg viewBox=\"0 0 24 24\"><path d=\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"\/><\/svg>\n        <\/button>\n        <div id=\"vimeo-progress\"><div id=\"vimeo-progress-fill\"><\/div><\/div>\n    <\/div>\n<\/div>\n\n<script src=\"https:\/\/player.vimeo.com\/api\/player.js\"><\/script>\n<script>\n(function () {\n    var wrap = document.getElementById('vimeo-wrap');\n    var iframe = document.getElementById('vimeo-switch');\n    var overlay = document.getElementById('vimeo-overlay');\n    var progressBar = document.getElementById('vimeo-progress');\n    var progressFill = document.getElementById('vimeo-progress-fill');\n    var player = new Vimeo.Player(iframe);\n\n    var isVisible = false;\n    var currentMuted = true;\n    var currentVolume = 1;\n    var seeking = false;\n    var generation = 0;\n\n    \/\/ === CACHE DURATA ===\n    var cachedDuration = 0;\n\n    \/\/ === STATO PERSISTENTE ===\n    var userWantsPlay = true;\n    var pausedByObserver = false;\n\n    var PLAY = 'M8 5v14l11-7z';\n    var PAUSE = 'M6 5h4v14H6zm8 0h4v14h-4z';\n    var VOL_ON = 'M3 9v6h4l5 5V4L7 9H3zm13.5 3a4.5 4.5 0 0 0-2.5-4.03v8.05A4.5 4.5 0 0 0 16.5 12z';\n    var VOL_OFF = 'M3 9v6h4l5 5V4L7 9H3zm13.59 1.41L15.17 12l1.42 1.41-1.41 1.42L13.76 13.4l-1.42 1.43-1.41-1.42 1.41-1.42-1.41-1.41 1.41-1.41 1.42 1.41 1.42-1.41z';\n\n    \/\/ === CACHE ICONE ===\n    var lastMuteIconState = null;\n    var lastPlayIconState = null;\n\n    function setMuteIcon(muted) {\n        if (lastMuteIconState === muted) return;\n        lastMuteIconState = muted;\n        var p = overlay.querySelector('[data-action=\"mute\"] svg path');\n        if (p) p.setAttribute('d', muted ? VOL_OFF : VOL_ON);\n    }\n    function setPlayIcon(paused) {\n        if (lastPlayIconState === paused) return;\n        lastPlayIconState = paused;\n        var p = overlay.querySelector('[data-action=\"playpause\"] svg path');\n        if (p) p.setAttribute('d', paused ? PLAY : PAUSE);\n    }\n\n    function syncPlayIconFromIntent() {\n        setPlayIcon(!userWantsPlay);\n    }\n\n    function syncIcons() {\n        player.getMuted().then(function (m) {\n            currentMuted = m;\n            setMuteIcon(m);\n        }).catch(function () {\n            setMuteIcon(currentMuted);\n        });\n        syncPlayIconFromIntent();\n    }\n\n    function startFullscreenProtection() {\n        var attempts = 0;\n        var maxAttempts = 30;\n        var interval = setInterval(function () {\n            attempts++;\n            if (attempts >= maxAttempts || !userWantsPlay || pausedByObserver) {\n                clearInterval(interval);\n                return;\n            }\n            player.getPaused().then(function (paused) {\n                if (paused) player.play().catch(function () {});\n            }).catch(function () {});\n        }, 150);\n    }\n\n    function onFullscreenExit() {\n        if (userWantsPlay) {\n            syncPlayIconFromIntent();\n            startFullscreenProtection();\n        }\n    }\n\n    \/\/ === TRACKER DI STATO con CLEANUP ===\n    var trackerCleanup = null;\n\n    function attachStateTracker(p) {\n        if (trackerCleanup) {\n            try { trackerCleanup(); } catch (e) {}\n            trackerCleanup = null;\n        }\n\n        generation++;\n        var myGen = generation;\n        cachedDuration = 0;\n\n        var onVolume = function (data) {\n            if (myGen !== generation) return;\n            currentMuted = data.muted;\n            if (typeof data.volume === 'number') currentVolume = data.volume;\n            setMuteIcon(data.muted);\n        };\n        var onPlay = function () {\n            if (myGen !== generation) return;\n            syncPlayIconFromIntent();\n        };\n        var onPause = function () {\n            if (myGen !== generation) return;\n            if (userWantsPlay && !pausedByObserver) {\n                syncPlayIconFromIntent();\n                setTimeout(function () {\n                    if (userWantsPlay && !pausedByObserver) {\n                        player.getPaused().then(function (paused) {\n                            if (paused) player.play().catch(function () {});\n                        });\n                    }\n                }, 100);\n                return;\n            }\n            syncPlayIconFromIntent();\n        };\n        var onFs = function (data) {\n            if (myGen !== generation) return;\n            if (!data.fullscreen) onFullscreenExit();\n        };\n\n        p.on('volumechange', onVolume);\n        p.on('play', onPlay);\n        p.on('pause', onPause);\n        p.on('fullscreenchange', onFs);\n\n        trackerCleanup = function () {\n            try { p.off('volumechange', onVolume); } catch (e) {}\n            try { p.off('play', onPlay); } catch (e) {}\n            try { p.off('pause', onPause); } catch (e) {}\n            try { p.off('fullscreenchange', onFs); } catch (e) {}\n        };\n\n        if (myGen === generation) {\n            forceProgressSync();\n            setTimeout(syncIcons, 100);\n            setTimeout(syncIcons, 500);\n        }\n    }\n\n    ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange'].forEach(function (evt) {\n        document.addEventListener(evt, function () {\n            var fsEl = document.fullscreenElement\n                    || document.webkitFullscreenElement\n                    || document.mozFullScreenElement\n                    || document.msFullscreenElement;\n            if (!fsEl) onFullscreenExit();\n        });\n    });\n\n    function forceProgressSync() {\n        if (seeking) return;\n        if (!isVisible) return; \n        player.getCurrentTime().then(function (t) {\n            if (seeking) return;\n            if (cachedDuration > 0) {\n                var pct = Math.min(100, Math.max(0, (t \/ cachedDuration) * 100));\n                progressFill.style.width = pct + '%';\n                return;\n            }\n            player.getDuration().then(function (d) {\n                if (seeking) return;\n                if (d > 0) {\n                    cachedDuration = d;\n                    var pct2 = Math.min(100, Math.max(0, (t \/ d) * 100));\n                    progressFill.style.width = pct2 + '%';\n                }\n            }).catch(function () {});\n        }).catch(function () {});\n    }\n\n    var progressTimer = null;\n    var watchdogTimer = null;\n\n    function startTimers() {\n        if (!progressTimer) progressTimer = setInterval(forceProgressSync, 500);\n        if (!watchdogTimer) {\n            watchdogTimer = setInterval(function () {\n                if (userWantsPlay && !pausedByObserver && isVisible) {\n                    player.getPaused().then(function (paused) {\n                        if (paused) player.play().catch(function () {});\n                    }).catch(function () {});\n                }\n            }, 1000);\n        }\n    }\n\n    function stopTimers() {\n        if (progressTimer) { clearInterval(progressTimer); progressTimer = null; }\n        if (watchdogTimer) { clearInterval(watchdogTimer); watchdogTimer = null; }\n    }\n\n    attachStateTracker(player);\n    player.setLoop(true).catch(function (err) { console.log('setLoop error:', err); });\n    \/\/ Forza il muto all'avvio per essere sicuri al 100%\n    player.setMuted(true).catch(function(){});\n\n    \/\/ === OVERLAY ===\n    var hideTimer;\n    function showOverlay() {\n        overlay.classList.add('is-visible');\n        clearTimeout(hideTimer);\n        hideTimer = setTimeout(hideOverlay, 3000);\n    }\n    function hideOverlay() {\n        overlay.classList.remove('is-visible');\n    }\n    function resetHideTimer() {\n        clearTimeout(hideTimer);\n        hideTimer = setTimeout(hideOverlay, 3000);\n    }\n\n    wrap.addEventListener('mouseenter', function () {\n        overlay.classList.add('is-visible');\n        clearTimeout(hideTimer);\n    });\n    wrap.addEventListener('mouseleave', hideOverlay);\n\n    overlay.addEventListener('touchstart', function (e) {\n        if (e.target === overlay) {\n            e.preventDefault();\n            if (overlay.classList.contains('is-visible')) {\n                resetHideTimer();\n            } else {\n                showOverlay();\n            }\n        }\n    }, { passive: false });\n\n    overlay.querySelectorAll('.vctrl').forEach(function (btn) {\n        function handle(e) {\n            if (e) { e.stopPropagation(); e.preventDefault(); }\n            var action = btn.getAttribute('data-action');\n            if (action === 'playpause') {\n                userWantsPlay = !userWantsPlay;\n                pausedByObserver = false;\n                if (userWantsPlay) {\n                    player.play().catch(function () {});\n                } else {\n                    player.pause().catch(function () {});\n                }\n                syncPlayIconFromIntent();\n            } else if (action === 'mute') {\n                \/\/ Toggle del muto manuale (unico modo per attivare l'audio)\n                player.getMuted().then(function (muted) {\n                    var newMuted = !muted;\n                    player.setMuted(newMuted);\n                    currentMuted = newMuted;\n                    setMuteIcon(newMuted);\n                }).catch(function () {\n                    var newMuted = !currentMuted;\n                    player.setMuted(newMuted);\n                    currentMuted = newMuted;\n                    setMuteIcon(newMuted);\n                });\n            } else if (action === 'fullscreen') {\n                if (player.requestFullscreen) player.requestFullscreen();\n            }\n            resetHideTimer();\n        }\n        btn.addEventListener('click', handle);\n        btn.addEventListener('touchstart', handle, { passive: false });\n    });\n\n    \/\/ === SEEK ===\n    function seekFromEvent(clientX) {\n        var rect = progressBar.getBoundingClientRect();\n        var ratio = (clientX - rect.left) \/ rect.width;\n        ratio = Math.max(0, Math.min(1, ratio));\n\n        function doSeek(dur) {\n            if (!dur || dur <= 0) return;\n            var target = dur * ratio;\n            seeking = true;\n            player.setCurrentTime(target).then(function () {\n                progressFill.style.width = (ratio * 100) + '%';\n                seeking = false;\n            }).catch(function () {\n                seeking = false;\n            });\n        }\n\n        if (cachedDuration > 0) {\n            doSeek(cachedDuration);\n            return;\n        }\n        player.getDuration().then(function (dur) {\n            if (dur > 0) cachedDuration = dur;\n            doSeek(dur);\n        }).catch(function () {});\n    }\n\n    progressBar.addEventListener('click', function (e) {\n        e.stopPropagation();\n        seekFromEvent(e.clientX);\n        resetHideTimer();\n    });\n    progressBar.addEventListener('touchstart', function (e) {\n        e.stopPropagation();\n        e.preventDefault();\n        if (e.touches && e.touches[0]) seekFromEvent(e.touches[0].clientX);\n        resetHideTimer();\n    }, { passive: false });\n    progressBar.addEventListener('touchmove', function (e) {\n        e.stopPropagation();\n        e.preventDefault();\n        if (e.touches && e.touches[0]) seekFromEvent(e.touches[0].clientX);\n        resetHideTimer();\n    }, { passive: false });\n\n    \/\/ === OSSERVER ===\n    if ('IntersectionObserver' in window) {\n        var observer = new IntersectionObserver(function (entries) {\n            entries.forEach(function (entry) {\n                isVisible = entry.isIntersecting;\n                if (isVisible) {\n                    pausedByObserver = false;\n                    startTimers(); \n                    if (userWantsPlay) {\n                        \/\/ Rimosso tryUnmute: ora fa solo play (muto)\n                        player.play().then(function () {\n                            syncPlayIconFromIntent();\n                        }).catch(function (err) { console.log('play:', err); });\n                    }\n                } else {\n                    pausedByObserver = true;\n                    stopTimers(); \n                    player.pause().catch(function (err) { console.log('pause:', err); });\n                }\n            });\n        }, { threshold: 0.25 });\n        observer.observe(wrap);\n    } else {\n        isVisible = true;\n        startTimers();\n        player.play().catch(function () {});\n    }\n})();\n<\/script><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":4647,"parent":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"project_category":[51,54,69],"project_tag":[],"class_list":["post-6171","project","type-project","status-publish","has-post-thumbnail","hentry","project_category-ac-milan","project_category-video-direction","project_category-emis-killa"],"_links":{"self":[{"href":"https:\/\/www.yoclas.com\/it\/wp-json\/wp\/v2\/project\/6171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yoclas.com\/it\/wp-json\/wp\/v2\/project"}],"about":[{"href":"https:\/\/www.yoclas.com\/it\/wp-json\/wp\/v2\/types\/project"}],"author":[{"embeddable":true,"href":"https:\/\/www.yoclas.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yoclas.com\/it\/wp-json\/wp\/v2\/comments?post=6171"}],"version-history":[{"count":7,"href":"https:\/\/www.yoclas.com\/it\/wp-json\/wp\/v2\/project\/6171\/revisions"}],"predecessor-version":[{"id":6180,"href":"https:\/\/www.yoclas.com\/it\/wp-json\/wp\/v2\/project\/6171\/revisions\/6180"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.yoclas.com\/it\/wp-json\/wp\/v2\/media\/4647"}],"wp:attachment":[{"href":"https:\/\/www.yoclas.com\/it\/wp-json\/wp\/v2\/media?parent=6171"}],"wp:term":[{"taxonomy":"project_category","embeddable":true,"href":"https:\/\/www.yoclas.com\/it\/wp-json\/wp\/v2\/project_category?post=6171"},{"taxonomy":"project_tag","embeddable":true,"href":"https:\/\/www.yoclas.com\/it\/wp-json\/wp\/v2\/project_tag?post=6171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}