Layer the Black Cardigan over anything — the J. Crew heritage knit has a shawl collar and cable pattern that make it feel like a piece you've owned for years.
Stack the Black Necklace alone or with two more colors — each 18-inch strand is made from 12 rows of traditional Czech beads that catch light with every movement.
The Black Onyx Earrings pair Onyx gemstones with Czech Preciosa Ornela beads on 18k gold huggie hoops — small enough to wear every day, interesting enough to earn a compliment.
Layer the Gray Cardigan over anything — the J. Crew heritage knit has a shawl collar and cable pattern that make it feel like a piece you've owned for years.
The New Black Denim Pants move with you — stretch-fit, wide elastic waist, and a 34-inch inseam built for dancing, lounging, and everything in between.
Slip into the Raven Joggers for the drop-crotch ease of sweats with the put-together look of real pants — they go from studio to street without changing.
Stack the Steel Gray Necklace alone or with two more colors — each 18-inch strand is made from 12 rows of traditional Czech beads that catch light with every movement.
$60.00
Curate Your ColorfulWishlist!
Products
Description
Price
Add To Cart
No product found at your wishlist.
Item$0.00
/* ── Paste into Elementor > Site Settings > Custom Code (footer) ── */
/* OR use the WPCode plugin > Snippets > add new > JS */
(function () {
const RADIUS = 120; /* ← reveal circle size in px */
const SPEED = 80; /* ← transition in ms (0 = instant) */
function initReveal() {
const section = document.getElementById('hover-reveal');
if (!section) return;
const overlay = section.querySelector('.reveal-overlay');
const cursor = section.querySelector('.reveal-cursor');
if (!overlay) return;
let raf = null;
let currentX = -9999, currentY = -9999;
let targetX = -9999, targetY = -9999;
function applyMask(x, y) {
const mask =
'radial-gradient(circle ' + RADIUS + 'px at ' + x + 'px ' + y + 'px, ' +
'transparent 100%, black 100%)';
overlay.style.webkitMaskImage = mask;
overlay.style.maskImage = mask;
}
function lerp(a, b, t) { return a + (b - a) * t; }
function animate() {
currentX = lerp(currentX, targetX, SPEED > 0 ? 0.18 : 1);
currentY = lerp(currentY, targetY, SPEED > 0 ? 0.18 : 1);
applyMask(Math.round(currentX), Math.round(currentY));
raf = requestAnimationFrame(animate);
}
section.addEventListener('mouseenter', function () {
raf = requestAnimationFrame(animate);
});
section.addEventListener('mousemove', function (e) {
const rect = section.getBoundingClientRect();
targetX = e.clientX - rect.left;
targetY = e.clientY - rect.top;
if (cursor) {
cursor.style.left = targetX + 'px';
cursor.style.top = targetY + 'px';
}
});
section.addEventListener('mouseleave', function () {
cancelAnimationFrame(raf);
/* reset overlay to fully opaque */
overlay.style.webkitMaskImage =
'radial-gradient(circle 0px at -9999px -9999px, transparent 100%, black 100%)';
overlay.style.maskImage =
'radial-gradient(circle 0px at -9999px -9999px, transparent 100%, black 100%)';
if (cursor) {
cursor.style.opacity = '0';
cursor.style.transform = 'translate(-50%, -50%) scale(0)';
}
});
}
/* Run after Elementor's frontend JS is ready */
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initReveal);
} else {
initReveal();
}
})();