Legal notice

/* ============================================================ FONT IMPORTS ============================================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Poppins:wght@300;400;500;600;700&display=swap'); /* ============================================================ ROOT VARIABLES ============================================================ */ :root { --meh-legal-primary: #7D5FFF; --meh-legal-primary-dark: #6B3FD4; --meh-legal-primary-light: #BE92FF; --meh-legal-gold: #D4AF37; --meh-legal-bg-start: #F8F6FF; --meh-legal-bg-mid: #FDF7FF; --meh-legal-bg-end: #FFF8FD; --meh-legal-glass-bg: rgba(255, 255, 255, 0.78); --meh-legal-shadow: rgba(123, 95, 255, 0.10); --meh-legal-text-dark: #472C67; --meh-legal-text-muted: #666; --meh-legal-radius: 26px; --meh-legal-transition: 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94); } /* ============================================================ SECTION WRAPPER – ANIMATED GRADIENT BACKGROUND ============================================================ */ .meh-legal { position: relative; font-family: 'Poppins', sans-serif; padding: 90px 20px; min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--meh-legal-bg-start), var(--meh-legal-bg-mid), var(--meh-legal-bg-end)); background-size: 400% 400%; animation: meh-legal-bgmove 14s ease-in-out infinite; overflow: hidden; isolation: isolate; } @keyframes meh-legal-bgmove { 0% { background-position: 0% 50%; } 33% { background-position: 100% 50%; } 66% { background-position: 50% 100%; } 100% { background-position: 0% 50%; } } /* ============================================================ FLOATING GLOW EFFECTS ============================================================ */ .meh-legal::before { content: ""; position: absolute; width: 420px; height: 420px; background: #E9D8FF; border-radius: 50%; filter: blur(140px); top: -150px; right: -130px; opacity: 0.45; animation: meh-legal-floatOne 12s ease-in-out infinite; z-index: 0; } .meh-legal::after { content: ""; position: absolute; width: 350px; height: 350px; background: #FFDCEF; border-radius: 50%; filter: blur(130px); bottom: -130px; left: -110px; opacity: 0.40; animation: meh-legal-floatTwo 10s ease-in-out infinite; z-index: 0; } @keyframes meh-legal-floatOne { 0%, 100% { transform: translateY(0) translateX(0); } 50% { transform: translateY(40px) translateX(-25px); } } @keyframes meh-legal-floatTwo { 0%, 100% { transform: translateY(0) translateX(0); } 50% { transform: translateY(-35px) translateX(25px); } } /* ============================================================ FLOATING PARTICLES CANVAS ============================================================ */ #legal-particles-canvas { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; } /* ============================================================ CONTAINER ============================================================ */ .meh-legal-container { position: relative; z-index: 2; max-width: 1300px; width: 100%; margin: 0 auto; } /* ============================================================ HEADER ============================================================ */ .meh-legal-header { text-align: center; margin-bottom: 50px; } .meh-legal-badge { display: inline-flex; align-items: center; gap: 10px; padding: 12px 30px; background: linear-gradient(135deg, var(--meh-legal-primary), var(--meh-legal-primary-light)); color: #fff; font-size: 13px; font-weight: 600; letter-spacing: 2px; border-radius: 40px; margin-bottom: 22px; text-transform: uppercase; box-shadow: 0 12px 30px rgba(125, 95, 255, 0.25); background-size: 300% 300%; animation: meh-legal-gradientMove 8s ease-in-out infinite; } .meh-legal-badge i { font-size: 16px; } @keyframes meh-legal-gradientMove { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } .meh-legal-header h1 { font-family: 'Playfair Display', serif; font-size: 52px; font-weight: 700; color: var(--meh-legal-text-dark); margin-bottom: 18px; letter-spacing: 1px; background: linear-gradient(135deg, #472C67, var(--meh-legal-primary), var(--meh-legal-primary-light)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .meh-legal-header p { max-width: 760px; margin: 0 auto; font-size: 18px; line-height: 1.9; color: var(--meh-legal-text-muted); font-weight: 300; letter-spacing: 0.3px; } /* ============================================================ COMPANY INFO ============================================================ */ .meh-legal-company { background: var(--meh-legal-glass-bg); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border-radius: var(--meh-legal-radius); padding: 35px 40px; border: 1px solid rgba(255, 255, 255, 0.7); box-shadow: 0 18px 45px var(--meh-legal-shadow); margin-bottom: 50px; display: grid; grid-template-columns: 1fr 1fr; gap: 30px; transition: all var(--meh-legal-transition); } .meh-legal-company:hover { box-shadow: 0 25px 60px rgba(123, 95, 255, 0.16); transform: translateY(-4px); } .meh-legal-company-card { display: flex; align-items: flex-start; gap: 20px; } .meh-legal-company-icon { width: 60px; height: 60px; border-radius: 50%; background: linear-gradient(135deg, var(--meh-legal-primary), var(--meh-legal-primary-light)); display: flex; align-items: center; justify-content: center; font-size: 24px; color: #fff; flex-shrink: 0; box-shadow: 0 10px 25px rgba(141, 109, 255, 0.20); } .meh-legal-company-content h3 { font-size: 22px; color: var(--meh-legal-text-dark); margin-bottom: 8px; font-weight: 600; } .meh-legal-company-content p { font-size: 15px; line-height: 1.8; color: var(--meh-legal-text-muted); font-weight: 300; } .meh-legal-company-content p strong { color: var(--meh-legal-text-dark); font-weight: 600; } .meh-legal-company-details { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-content: center; } .meh-legal-detail-item { display: flex; align-items: center; gap: 14px; padding: 12px 16px; background: rgba(125, 95, 255, 0.04); border-radius: 14px; border: 1px solid rgba(125, 95, 255, 0.06); transition: all var(--meh-legal-transition); } .meh-legal-detail-item:hover { background: rgba(125, 95, 255, 0.08); transform: translateX(4px); } .meh-legal-detail-item i { font-size: 18px; color: var(--meh-legal-primary); width: 24px; text-align: center; } .meh-legal-detail-item div { display: flex; flex-direction: column; } .meh-legal-detail-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; color: #999; font-weight: 600; } .meh-legal-detail-value { font-size: 14px; color: var(--meh-legal-text-dark); font-weight: 500; } /* ============================================================ LEGAL GRID ============================================================ */ .meh-legal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-bottom: 50px; } /* ============================================================ LEGAL CARDS – GLASSMORPHISM ============================================================ */ .meh-legal-card { background: var(--meh-legal-glass-bg); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); padding: 32px 28px; border-radius: var(--meh-legal-radius); box-shadow: 0 18px 45px var(--meh-legal-shadow); border: 1px solid rgba(255, 255, 255, 0.7); transition: all var(--meh-legal-transition); position: relative; overflow: hidden; } .meh-legal-card::before { content: ""; position: absolute; left: -100%; top: 0; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.40), transparent); transition: left 0.8s ease; pointer-events: none; } .meh-legal-card:hover::before { left: 120%; } .meh-legal-card:hover { transform: translateY(-8px); box-shadow: 0 25px 60px rgba(123, 95, 255, 0.16); border-color: rgba(125, 95, 255, 0.12); } .meh-legal-icon { width: 60px; height: 60px; border-radius: 50%; background: linear-gradient(135deg, var(--meh-legal-primary), var(--meh-legal-primary-light)); display: flex; align-items: center; justify-content: center; font-size: 24px; margin-bottom: 18px; color: #fff; box-shadow: 0 10px 25px rgba(141, 109, 255, 0.20); transition: all var(--meh-legal-transition); } .meh-legal-card:hover .meh-legal-icon { transform: rotate(10deg) scale(1.08); } .meh-legal-card h3 { font-size: 22px; margin-bottom: 14px; color: var(--meh-legal-text-dark); font-weight: 600; } .meh-legal-card ul { padding-left: 0; margin: 0; list-style: none; } .meh-legal-card li { margin-bottom: 10px; line-height: 1.7; color: #555; font-weight: 300; font-size: 15px; display: flex; align-items: flex-start; gap: 10px; position: relative; padding-left: 4px; } .meh-legal-card li::before { content: "✦"; color: var(--meh-legal-primary); font-size: 12px; flex-shrink: 0; margin-top: 3px; } .meh-legal-card p { font-size: 15px; line-height: 1.8; color: var(--meh-legal-text-muted); font-weight: 300; } /* ============================================================ ACCEPTANCE CARD (Special) ============================================================ */ .meh-legal-card-acceptance { grid-column: 1 / -1; background: linear-gradient(135deg, var(--meh-legal-primary), var(--meh-legal-primary-light)); color: #fff; text-align: center; padding: 45px 50px; border: none; } .meh-legal-card-acceptance::before { background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.20), transparent); } .meh-legal-card-acceptance .meh-legal-icon { background: rgba(255, 255, 255, 0.20); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.10); margin: 0 auto 18px; } .meh-legal-card-acceptance h3 { color: #fff; font-family: 'Playfair Display', serif; font-size: 28px; } .meh-legal-card-acceptance .meh-legal-acceptance-text { font-size: 17px; line-height: 1.9; color: rgba(255, 255, 255, 0.90); max-width: 750px; margin: 0 auto 30px; font-weight: 300; } .meh-legal-card-acceptance .meh-legal-acceptance-text strong { font-weight: 600; color: #fff; } .meh-legal-acceptance-buttons { display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; } .meh-legal-btn-primary { display: inline-flex; align-items: center; gap: 10px; padding: 16px 36px; background: #fff; color: var(--meh-legal-primary); border-radius: 50px; text-decoration: none; font-weight: 600; font-size: 16px; transition: all var(--meh-legal-transition); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12); } .meh-legal-btn-primary:hover { transform: translateY(-4px) scale(1.03); box-shadow: 0 15px 45px rgba(0, 0, 0, 0.18); } .meh-legal-btn-secondary { display: inline-flex; align-items: center; gap: 10px; padding: 16px 36px; background: rgba(255, 255, 255, 0.15); color: #fff; border: 2px solid rgba(255, 255, 255, 0.30); border-radius: 50px; text-decoration: none; font-weight: 600; font-size: 16px; transition: all var(--meh-legal-transition); backdrop-filter: blur(4px); } .meh-legal-btn-secondary:hover { transform: translateY(-4px) scale(1.03); background: rgba(255, 255, 255, 0.25); border-color: rgba(255, 255, 255, 0.50); } /* ============================================================ FOOTER ============================================================ */ .meh-legal-footer { margin-top: 30px; text-align: center; } .meh-legal-divider { display: flex; align-items: center; justify-content: center; gap: 18px; margin-bottom: 20px; } .meh-legal-divider-line { flex: 1; max-width: 80px; height: 1px; background: linear-gradient(90deg, transparent, var(--meh-legal-primary), transparent); } .meh-legal-divider i { color: var(--meh-legal-gold); font-size: 18px; animation: meh-legal-floatGem 3s ease-in-out infinite; } @keyframes meh-legal-floatGem { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } } .meh-legal-footer-text { font-size: 14px; color: #888; font-weight: 300; letter-spacing: 0.3px; } .meh-legal-footer-text strong { color: var(--meh-legal-primary); font-weight: 500; } .meh-legal-footer-separator { margin: 0 10px; color: #ccc; } /* ============================================================ SCROLL REVEAL ANIMATIONS ============================================================ */ [data-aos] { opacity: 0; transform: translateY(40px); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); } [data-aos].aos-animate { opacity: 1; transform: translateY(0); } /* ============================================================ RESPONSIVE DESIGN ============================================================ */ @media (max-width: 992px) { .meh-legal-grid { grid-template-columns: repeat(2, 1fr); } .meh-legal-header h1 { font-size: 40px; } .meh-legal-company { grid-template-columns: 1fr; padding: 30px; } .meh-legal-card-acceptance { padding: 35px 30px; } .meh-legal-company-details { grid-template-columns: 1fr 1fr; } } @media (max-width: 768px) { .meh-legal { padding: 60px 16px; } .meh-legal-header h1 { font-size: 32px; } .meh-legal-header p { font-size: 15px; } .meh-legal-grid { grid-template-columns: 1fr 1fr; gap: 18px; } .meh-legal-card { padding: 24px 20px; border-radius: 20px; } .meh-legal-card h3 { font-size: 19px; } .meh-legal-card li { font-size: 14px; } .meh-legal-company { padding: 24px 20px; } .meh-legal-company-card { flex-direction: column; text-align: center; align-items: center; } .meh-legal-company-content h3 { font-size: 20px; } .meh-legal-company-content p { font-size: 14px; text-align: center; } .meh-legal-company-details { grid-template-columns: 1fr; gap: 10px; } .meh-legal-detail-item { padding: 10px 14px; } .meh-legal-card-acceptance { padding: 30px 24px; } .meh-legal-card-acceptance h3 { font-size: 24px; } .meh-legal-card-acceptance .meh-legal-acceptance-text { font-size: 15px; } .meh-legal-btn-primary, .meh-legal-btn-secondary { padding: 14px 28px; font-size: 14px; } .meh-legal-divider-line { max-width: 50px; } .meh-legal-footer-text { font-size: 13px; } } @media (max-width: 480px) { .meh-legal { padding: 50px 12px; } .meh-legal-header h1 { font-size: 28px; } .meh-legal-header p { font-size: 14px; } .meh-legal-grid { grid-template-columns: 1fr; gap: 16px; } .meh-legal-card { padding: 20px 16px; border-radius: 18px; } .meh-legal-card h3 { font-size: 18px; } .meh-legal-card li { font-size: 13px; } .meh-legal-icon { width: 50px; height: 50px; font-size: 20px; } .meh-legal-company { padding: 20px 16px; } .meh-legal-company-icon { width: 50px; height: 50px; font-size: 20px; } .meh-legal-company-details { grid-template-columns: 1fr; } .meh-legal-card-acceptance { padding: 24px 18px; } .meh-legal-card-acceptance h3 { font-size: 20px; } .meh-legal-card-acceptance .meh-legal-acceptance-text { font-size: 14px; } .meh-legal-acceptance-buttons { flex-direction: column; align-items: center; } .meh-legal-btn-primary, .meh-legal-btn-secondary { width: 100%; justify-content: center; padding: 14px 20px; font-size: 14px; } .meh-legal-badge { font-size: 11px; padding: 10px 20px; } .meh-legal-footer-text { font-size: 12px; } .meh-legal-footer-separator { display: none; } .meh-legal-divider-line { max-width: 40px; } } /* ============================================================ ACCESSIBILITY – REDUCED MOTION ============================================================ */ @media (prefers-reduced-motion: reduce) { .meh-legal, .meh-legal::before, .meh-legal::after, .meh-legal-badge, .meh-legal-divider i, [data-aos] { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } [data-aos] { opacity: 1 !important; transform: none !important; } .meh-legal-card:hover { transform: none !important; } .meh-legal-card::before { display: none; } .meh-legal-btn-primary:hover, .meh-legal-btn-secondary:hover { transform: none !important; } .meh-legal-company:hover { transform: none !important; } } /* ============================================================ FOCUS VISIBLE – KEYBOARD NAVIGATION ============================================================ */ .meh-legal-btn-primary:focus-visible, .meh-legal-btn-secondary:focus-visible, .meh-legal-card:focus-visible { outline: 3px solid var(--meh-legal-primary); outline-offset: 3px; transform: scale(1.02); } (function() { 'use strict'; // ============================================================ // 1. FLOATING PARTICLES (Canvas) // ============================================================ var canvas = document.getElementById('legal-particles-canvas'); if (canvas) { var ctx = canvas.getContext('2d'); var particles = []; var particleCount = 30; var w, h; function resizeCanvas() { var rect = canvas.parentElement.getBoundingClientRect(); canvas.width = rect.width; canvas.height = rect.height; w = canvas.width; h = canvas.height; } function Particle() { this.reset = function() { this.x = Math.random() * w; this.y = Math.random() * h; this.size = Math.random() * 4 + 2; this.speedX = (Math.random() - 0.5) * 0.3; this.speedY = (Math.random() - 0.5) * 0.3; this.opacity = Math.random() * 0.3 + 0.1; this.color = 'hsla(' + (Math.random() * 60 + 260) + ', 45%, 75%, ' + this.opacity + ')'; }; this.update = function() { this.x += this.speedX; this.y += this.speedY; if (this.x < 0 || this.x > w) this.speedX *= -1; if (this.y < 0 || this.y > h) this.speedY *= -1; }; this.draw = function() { ctx.beginPath(); ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2); ctx.fillStyle = this.color; ctx.shadowColor = 'rgba(125, 95, 255, 0.08)'; ctx.shadowBlur = 8; ctx.fill(); ctx.shadowBlur = 0; }; this.reset(); } function initParticles() { particles = []; for (var i = 0; i < particleCount; i++) { particles.push(new Particle()); } } function animateParticles() { ctx.clearRect(0, 0, w, h); for (var i = 0; i < particles.length; i++) { particles[i].update(); particles[i].draw(); } requestAnimationFrame(animateParticles); } resizeCanvas(); initParticles(); animateParticles(); window.addEventListener('resize', function() { resizeCanvas(); initParticles(); }); } // ============================================================ // 2. SCROLL REVEAL (Intersection Observer) // ============================================================ var revealElements = document.querySelectorAll('[data-aos]'); if ('IntersectionObserver' in window) { var observer = new IntersectionObserver(function(entries) { for (var i = 0; i < entries.length; i++) { if (entries[i].isIntersecting) { var el = entries[i].target; var delay = parseInt(el.getAttribute('data-aos-delay')) || 0; setTimeout(function() { el.classList.add('aos-animate'); }, delay); observer.unobserve(el); } } }, { threshold: 0.15, rootMargin: '0px 0px -30px 0px' }); for (var i = 0; i < revealElements.length; i++) { observer.observe(revealElements[i]); } } else { for (var i = 0; i < revealElements.length; i++) { revealElements[i].classList.add('aos-animate'); } } // ============================================================ // 3. 3D TILT EFFECT ON CARDS (Desktop only) // ============================================================ if (window.innerWidth > 768) { var legalCards = document.querySelectorAll('.meh-legal-card:not(.meh-legal-card-acceptance)'); for (var i = 0; i < legalCards.length; i++) { (function(card) { card.addEventListener('mousemove', function(e) { var rect = card.getBoundingClientRect(); var x = (e.clientX - rect.left) / rect.width; var y = (e.clientY - rect.top) / rect.height; var rotateX = (y - 0.5) * 12; var rotateY = (x - 0.5) * 12; card.style.transform = 'perspective(1000px) rotateX(' + (-rotateX) + 'deg) rotateY(' + rotateY + 'deg) translateY(-8px)'; }); card.addEventListener('mouseleave', function() { card.style.transform = 'perspective(1000px) rotateX(0deg) rotateY(0deg)'; }); })(legalCards[i]); } // Also tilt for company card var companyCard = document.querySelector('.meh-legal-company'); if (companyCard) { companyCard.addEventListener('mousemove', function(e) { var rect = companyCard.getBoundingClientRect(); var x = (e.clientX - rect.left) / rect.width; var y = (e.clientY - rect.top) / rect.height; var rotateX = (y - 0.5) * 8; var rotateY = (x - 0.5) * 8; companyCard.style.transform = 'perspective(1000px) rotateX(' + (-rotateX) + 'deg) rotateY(' + rotateY + 'deg) translateY(-4px)'; }); companyCard.addEventListener('mouseleave', function() { companyCard.style.transform = 'perspective(1000px) rotateX(0deg) rotateY(0deg)'; }); } } // ============================================================ // 4. ACCESSIBILITY: Hide particles canvas from screen readers // ============================================================ if (canvas) { canvas.setAttribute('aria-hidden', 'true'); } })();