// Shared UI pieces: Placeholder, Marquee, MusicBars, LanguagePill, ThemePill const { useEffect, useRef, useState } = React; function Placeholder({ label, aspect = '4/5', className = '', theme }) { const dark = theme.placeholderMode === 'stripes-dark'; const stripeA = dark ? 'rgba(255,255,255,0.04)' : 'rgba(0,0,0,0.04)'; const stripeB = dark ? 'rgba(255,255,255,0.08)' : 'rgba(0,0,0,0.08)'; const bg = dark ? '#1a1614' : theme.bg2; return (
↳ {label}
); } function Marquee({ text, theme, reverse = false }) { return (
{Array.from({ length: 8 }, (_, i) => ( {text} ))}
); } function MusicBars({ color, height = 16, count = 4 }) { return ( {Array.from({ length: count }, (_, i) => ( ))} ); } function Kicker({ children, theme, color }) { return (
{children}
); } function DisplayText({ children, theme, size = 'clamp(44px, 7vw, 112px)', color, style = {} }) { return (

{children}

); } Object.assign(window, { Placeholder, Marquee, MusicBars, Kicker, DisplayText });