@@ -152,13 +152,27 @@ const ENTRY_TEMPLATES: Omit<LogEntry, 'id' | 'insertedAt'>[] = [
152152
153153const INITIAL_OFFSETS_MS = [ 0 , 20_000 , 75_000 , 240_000 , 540_000 ]
154154
155- const MARQUEE_KEYFRAMES = `
156- @keyframes marquee {
155+ const ENTERPRISE_FEATURE_MARQUEE_STYLES = `
156+ @keyframes enterprise-feature- marquee {
157157 0% { transform: translateX(0); }
158158 100% { transform: translateX(-25%); }
159159 }
160+ .enterprise-feature-marquee-track {
161+ animation: enterprise-feature-marquee 30s linear infinite;
162+ }
163+ .enterprise-feature-marquee:hover .enterprise-feature-marquee-track {
164+ animation-play-state: paused;
165+ }
166+ .enterprise-feature-marquee-tag {
167+ transition: background-color 0.3s ease, color 0.3s ease;
168+ }
160169 @media (prefers-reduced-motion: reduce) {
161- @keyframes marquee { 0%, 100% { transform: none; } }
170+ .enterprise-feature-marquee-track {
171+ animation: none;
172+ }
173+ .enterprise-feature-marquee-tag {
174+ transition: none;
175+ }
162176 }
163177`
164178
@@ -423,9 +437,9 @@ export default function Enterprise() {
423437 < AuditLogPreview />
424438 < TrustStrip />
425439
426- { /* Scrolling feature ticker */ }
427- < div className = 'relative mt-6 overflow-hidden border-[#2A2A2A] border-t' >
428- < style dangerouslySetInnerHTML = { { __html : MARQUEE_KEYFRAMES } } />
440+ { /* Scrolling feature ticker — keyframe loop; pause on hover. Tags use transitions for hover. */ }
441+ < div className = 'enterprise-feature-marquee relative mt-6 overflow-hidden border-[#2A2A2A] border-t' >
442+ < style dangerouslySetInnerHTML = { { __html : ENTERPRISE_FEATURE_MARQUEE_STYLES } } />
429443 { /* Fade edges */ }
430444 < div
431445 aria-hidden = 'true'
@@ -438,12 +452,12 @@ export default function Enterprise() {
438452 style = { { background : 'linear-gradient(to left, #1C1C1C, transparent)' } }
439453 />
440454 { /* Duplicate tags for seamless loop */ }
441- < div className = 'flex w-max' style = { { animation : 'marquee 30s linear infinite' } } >
455+ < div className = 'enterprise-feature-marquee-track flex w-max' >
442456 { [ ...FEATURE_TAGS , ...FEATURE_TAGS , ...FEATURE_TAGS , ...FEATURE_TAGS ] . map (
443457 ( tag , i ) => (
444458 < span
445459 key = { i }
446- className = 'whitespace-nowrap border-[#2A2A2A] border-r px-5 py-4 font-[430] font-season text-[#F6F6F6]/40 text-[13px] leading-none tracking-[0.02em]'
460+ className = 'enterprise-feature-marquee-tag whitespace-nowrap border-[#2A2A2A] border-r px-5 py-4 font-[430] font-season text-[#F6F6F6]/40 text-[13px] leading-none tracking-[0.02em] hover:bg-white/[0.04] hover:text-[#F6F6F6]/55 '
447461 >
448462 { tag }
449463 </ span >
0 commit comments