Miraiyo
IDEAS THAT MOVE BRANDS FORWARD

MIRAIYO INSIGHTS

Explore practical insights on AI, digital growth, branding, content, and strategy. Clear thinking, useful ideas, and real-world marketing knowledge for businesses ready to grow smarter.

View More Posts →
Scroll to Top
================================================================ */ (function () { 'use strict';var targets = document.querySelectorAll( '.spv2-hero-inner, .spv2-logos-wrap, ' + '.spv2-sec-header, .spv2-fw-card, ' + '.spv2-prob-card, .spv2-svc-card, ' + '.spv2-cta-inner' );/* Add reveal class to everything */ targets.forEach(function (el) { el.classList.add('spv2-reveal'); });/* Stagger delays for grid cards */ document.querySelectorAll('.spv2-prob-card').forEach(function (el, i) { el.classList.add('spv2-d' + (i % 4 + 1)); }); document.querySelectorAll('.spv2-svc-card').forEach(function (el, i) { el.classList.add('spv2-d' + (i % 4 + 1)); });/* IntersectionObserver */ if ('IntersectionObserver' in window) { var obs = new IntersectionObserver(function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { entry.target.classList.add('spv2-visible'); obs.unobserve(entry.target); } }); }, { threshold: 0.1 });targets.forEach(function (el) { obs.observe(el); }); } else { targets.forEach(function (el) { el.classList.add('spv2-visible'); }); }/* Immediately reveal anything already in viewport on load */ setTimeout(function () { targets.forEach(function (el) { var r = el.getBoundingClientRect(); if (r.top < window.innerHeight) { el.classList.add('spv2-visible'); } }); }, 80);}());(function () { 'use strict';/* ── Add reveal class to header + each card ── */ var headers = document.querySelectorAll('.mmv-header'); var cards = document.querySelectorAll('.mmv-card');headers.forEach(function (el) { el.classList.add('mmv-reveal'); });cards.forEach(function (el, i) { el.classList.add('mmv-reveal'); /* Stagger by card position within its row of 4 */ el.classList.add('mmv-d' + ((i % 4) + 1)); });/* ── IntersectionObserver: reveal on scroll ── */ if ('IntersectionObserver' in window) { var obs = new IntersectionObserver( function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { entry.target.classList.add('mmv-visible'); obs.unobserve(entry.target); } }); }, { threshold: 0.10 } );headers.forEach(function (el) { obs.observe(el); }); cards.forEach(function (el) { obs.observe(el); });} else { /* Fallback for very old browsers */ headers.forEach(function (el) { el.classList.add('mmv-visible'); }); cards.forEach(function (el) { el.classList.add('mmv-visible'); }); }/* ── Immediately reveal anything already visible on page load ── */ setTimeout(function () { document.querySelectorAll('.mmv-header, .mmv-card').forEach(function (el) { var r = el.getBoundingClientRect(); if (r.top < window.innerHeight) { el.classList.add('mmv-visible'); } }); }, 80);}());/* ── Portfolio ── */ const io = new IntersectionObserver( e => e.forEach(x => { if (x.isIntersecting) { x.target.classList.add('on'); io.unobserve(x.target); } }), { threshold: 0.08 } ); document.querySelectorAll('.sr').forEach(el => io.observe(el));const bo = new IntersectionObserver( e => e.forEach(x => { if (x.isIntersecting) { x.target.querySelectorAll('.fbar-f').forEach(b => { const w = b.style.width; b.style.width = '0'; setTimeout(() => b.style.width = w, 300); }); bo.unobserve(x.target); } }), { threshold: 0.3 } ); document.querySelectorAll('.fvis').forEach(el => bo.observe(el));